package com.ruoyi.project.system.mapper;

import java.util.Date;
import java.util.List;

import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.project.system.domain.SysNotice;
import tk.mybatis.mapper.additional.idlist.DeleteByIdListMapper;
import tk.mybatis.mapper.common.Mapper;
import tk.mybatis.mapper.entity.Example;

/**
 * 通知公告表 数据层
 * 
 * @author ruoyi
 */
public interface SysNoticeMapper extends Mapper<SysNotice>, DeleteByIdListMapper<SysNotice, Long>
{
    /**
     * 查询公告列表
     * 
     * @param notice 公告信息
     * @return 公告集合
     */
    default List<SysNotice> selectNoticeList(SysNotice notice) {
        Example example = new Example(SysNotice.class);
        Example.Criteria criteria = example.createCriteria();
        if (StringUtils.isNotEmpty(notice.getNoticeTitle())) {
            criteria.andLike("noticeTitle", "%" + notice.getNoticeTitle() + "%");
        }
        if (StringUtils.isNotEmpty(notice.getNoticeType())) {
            criteria.andEqualTo("noticeType", notice.getNoticeType());
        }
        if (StringUtils.isNotEmpty(notice.getCreateBy())) {
            criteria.andLike("createBy", "%" + notice.getCreateBy() + "%");
        }
        return selectByExample(example);
    }

    /**
     * 新增公告
     * 
     * @param notice 公告信息
     * @return 结果
     */
    default int insertNotice(SysNotice notice) {
        notice.setCreateTime(new Date());
        return insertSelective(notice);
    }

    /**
     * 修改公告
     * 
     * @param notice 公告信息
     * @return 结果
     */
    default int updateNotice(SysNotice notice) {
        notice.setUpdateTime(new Date());
        return updateByPrimaryKeySelective(notice);
    }
}